home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / system-config-printer / smburi.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-29  |  2KB  |  84 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.5)
  3.  
  4. import urllib
  5.  
  6. class SMBURI:
  7.     
  8.     def __init__(self, uri = None, group = '', host = '', share = '', user = '', password = ''):
  9.         if uri:
  10.             if group and host and share and user or password:
  11.                 raise RuntimeError
  12.             
  13.             if uri.startswith('smb://'):
  14.                 uri = uri[6:]
  15.             
  16.             self.uri = uri
  17.         else:
  18.             self.uri = self._construct(group, host, share, user = user, password = password)
  19.  
  20.     
  21.     def _construct(self, group, host, share, user = '', password = ''):
  22.         uri_password = ''
  23.         if password:
  24.             uri_password = ':' + urllib.quote(password)
  25.         
  26.         if user:
  27.             uri_password += '@'
  28.         
  29.         uri = '%s%s%s' % (urllib.quote(user), uri_password, urllib.quote(group))
  30.         if len(uri) > 0:
  31.             uri += '/'
  32.         
  33.         uri += urllib.quote(host)
  34.         if len(share) > 0:
  35.             uri += '/' + urllib.quote(share)
  36.         
  37.         return uri
  38.  
  39.     
  40.     def get_uri(self):
  41.         return self.uri
  42.  
  43.     
  44.     def sanitize_uri(self):
  45.         (group, host, share, user, password) = self.separate()
  46.         return self._construct(group, host, share)
  47.  
  48.     
  49.     def separate(self):
  50.         uri = self.get_uri()
  51.         user = ''
  52.         password = ''
  53.         auth = uri.find('@')
  54.         if auth != -1:
  55.             u = uri[:auth].find(':')
  56.             if u != -1:
  57.                 user = uri[:u]
  58.                 password = uri[u + 1:auth]
  59.             else:
  60.                 user = uri[:auth]
  61.             uri = uri[auth + 1:]
  62.         
  63.         sep = uri.count('/')
  64.         group = ''
  65.         if sep == 2:
  66.             g = uri.find('/')
  67.             group = uri[:g]
  68.             uri = uri[g + 1:]
  69.         
  70.         if sep < 1:
  71.             host = ''
  72.         else:
  73.             h = uri.find('/')
  74.             host = uri[:h]
  75.             uri = uri[h + 1:]
  76.             p = host.find(':')
  77.             if p != -1:
  78.                 host = host[:p]
  79.             
  80.         share = uri
  81.         return (urllib.unquote(group), urllib.unquote(host), urllib.unquote(share), urllib.unquote(user), urllib.unquote(password))
  82.  
  83.  
  84.